#include "stm32f10x.h"                  // Device header

int main(void)
{
    // 1. GPIOA模块的时钟配置: RCC_APB2ENR 寄存器
    RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;

    // 2. GPIO PA0的工作模式配置：输出模式，推挽输出: GPIOA_CRL 寄存器
    GPIOA->CRL &= ~GPIO_CRL_MODE0;
    GPIOA->CRL &= ~GPIO_CRL_CNF0;
    GPIOA->CRL |= (GPIO_CRL_MODE0_0 | GPIO_CRL_MODE0_1);

    // 2. GPIO PA1的工作模式配置：输出模式，推挽输出: GPIOA_CRL 寄存器
    GPIOA->CRL &= ~GPIO_CRL_MODE1;
    GPIOA->CRL &= ~GPIO_CRL_CNF1;
    GPIOA->CRL |= (GPIO_CRL_MODE1_0 | GPIO_CRL_MODE1_1);

    // 2. GPIO PA8的工作模式配置：输出模式，推挽输出: GPIOA_CRH 寄存器
    GPIOA->CRH &= ~GPIO_CRH_MODE8;
    GPIOA->CRH &= ~GPIO_CRH_CNF8;
    GPIOA->CRH |= (GPIO_CRH_MODE8_0 | GPIO_CRH_MODE8_1);

    // 3. PA0输出低电平, 点亮LED: GPIOA_ODR 寄存器
    GPIOA->ODR &= ~GPIO_ODR_ODR0;
    // 3. PA1输出低电平, 点亮LED: GPIOA_ODR 寄存器
    GPIOA->ODR &= ~GPIO_ODR_ODR1;
    // 3. PA8输出低电平, 点亮LED: GPIOA_ODR 寄存器
    GPIOA->ODR &= ~GPIO_ODR_ODR8;

    while(1)
    {
    }
}
